""""
自制一个密码生成器
思路：
1.密码应该至少是由一位小写字母、大写字母、数字、以及符号构成，确保密码复杂且符合安全标准。
2.密码的长度应该是可以用户选择的。
3.密码是随机的，每次都是不一样的。
"""
import random # 随机模块
import string # 字符串模块

def generate_password(length): #采用Length来控制密码的长度，这里设置为12
    # 定义密码中可能包含的字符集合 ，使用String模块
    print("欢迎使用随机密码生成器\n")
    lower_case = string.ascii_lowercase # 小写字母
    upper_case = string.ascii_uppercase # 大写字母
    digits = string.digits # 数字
    punctuation = string.punctuation # 符号

    all_characters = lower_case + upper_case + digits + punctuation # 组合所有字符集合

    password = [
        random.choice(lower_case),
        random.choice(upper_case),
        random.choice(digits),
        random.choice(punctuation)
    ]# 确保密码中至少包含一个小写字母、一个大写字母、一个数字和一个符号

    # 填充剩余的密码字符
    password += random.choices(all_characters, k=length - 4) # k=length - 4 表示从 all_characters 中随机选择 length - 4 个字符
    random.shuffle(password) # 打乱密码字符的顺序
    return ''.join(password) # 将密码字符合并成一个字符串

password_length = int(input("请输入您想要设置的密码长度:")) #让用户选择自己想要生成的密码长度
password = generate_password(password_length)
print("您的生成随机密码为:", password)


